package part15;

/**
 * @author wcj
 * @Date 2021/5/30 15:39
 * @Version 1.0
 */
public class Part1522<T> {
    /**
     * 编译期间无错，但是运行时会跟踪其具体类型，然而其具体类型被擦除了
     * 对于数组而言，我们无法创建泛型数组，根本原因在于运行期跟踪数组元素的具体类型，但是泛型类型被擦除了
     * 我们想使用泛型数组，唯一的方式就是创建Object数组，然后添加对其转型
     */
    static Generic<Integer>[] gia;

    static final int SIZE = 100;

    private Object[] objs;

    public Part1522(Object[] objs) {
        this.objs = objs;
    }

    public T[] rep() {
        return (T[]) objs;
    }

    public static void main(String[] args) {
        gia = (Generic<Integer>[]) new Generic[SIZE];
        gia[0] = new Generic<Integer>();
        System.out.println(gia.getClass().getSimpleName());
    }
}

class Generic<T> {
}
